package cn.xxstudy.blog.service

import cn.xxstudy.blog.entity.Category
import com.sun.org.apache.xpath.internal.operations.Bool
import org.springframework.data.domain.Page
import org.springframework.data.domain.Pageable

/**
 * 作者：wuxinxi on 2020/11/25
 * 包名：cn.xxstudy.blog.service
 * TODO:分类
 */
interface ICategoryService {

    /**
     * 新建分类
     */
    fun createCategory(category: Category): Category?

    /**
     *通过Id获取分类信息
     */
    fun getCategoryById(id: Long): Category?


    /**
     *通过name获取分类信息
     */
    fun getCategoryByName(categoryName: String): Category?

    /**
     * 分页获取分类列表
     */
    fun listCategory(pageable: Pageable): Page<Category>

    /**
     *所有分类列表
     */
    fun listCategory(): List<Category>

    fun listCategoryBySort(): List<Category>

    /**
     * 根据博客数量查询前size个
     */
    fun listCategoryTop(size: Int): List<Category>

    /**
     *根据Id删除
     */
    fun deleteById(id: Long): Boolean

    /**
     *根据Name删除
     */
    fun deleteByName(categoryName: String): Boolean

    /**
     * 更新
     */
    fun updateByName(categoryName: String, sourceCategory: Category): Boolean
}